function f1(arg) {
  console.log('f1', arg);
  return arg;
}
function f2(arg) {
  console.log('f2', arg);
  return arg;
}
function f3(arg) {
  console.log('f3', arg);
  return arg;
}

// 实现逐个调用 f1,f2,f3的函数

// 1. 
// f1('f');
// f2('f');
// f3('f');

// 2.
// f3(f2(f1('f')));

// 3.
let com = compose(f1, f2, f3)('f');
function compose(...funcs) {
  if (funcs.length === 0) {
    return arg => arg
  }
  return funcs.reduce((a, b) => (...args) => b(a(...args)))
}













